#include <SDL/SDL.h>

#ifndef _VIDEO_H_
#define _VIDEO_H_

/*!
 *  \class Video
 *  \author Shin-NiL
 *  \date 12/02/2010 Criação
 *  \version 0.1
 *  \brief Classe de sistema de vídeo.
 *
 *  Classe gerenciadora do sistema de vídeo, deve ser instanciada
 *  apenas uma vez.
 */

class Video
{
    private:
        /// Ponteiro para a superfície de vídeo ativa
        SDL_Surface* mpTelaAtiva;
        /// Altura da janela
        Uint16 mAltura;
        /// Largura da janela
        Uint16 mLargura;
        /// Profundidade de cor
        Uint8 mProfund;
	/// Flags para inicializacao de vídeo
	Uint32 mVideoFlags;
        /// Flag que controla tela Cheia
        SDL_bool mbTelaCheia;
	/// Flag que indica se já existe classe instanciada
	static SDL_bool sbInstanciada;


    public:
        /// Construtor padrão
        Video();
        /// \brief Inicializa o sistema de vídeo
        /// \return true se incializou e false se não incializou
        /// \param telaCheia modo tela cheia, por padrão é false
        /// \param altura altura da janela, por padrão 320
        /// \param largura largura da janela, por padrão 240
        /// \param bpp bits por pixel, por padrão 16
        SDL_bool inicializa(Uint16 largura = 320, Uint16 altura = 240, SDL_bool telaCheia = SDL_FALSE,
                        Uint8 bpp = 16);
        /// \brief Retorna ponteiro para a superfície ativa
        /// \return Ponteiro para a superfície ativa
        SDL_Surface* retornaTela();
        /// \brief Retorna a largura da janela
        /// \return Largura da janela
        Uint16 retornaLargura(){ return mLargura;}
        /// \brief Retorna a altura da janela
        /// \return Altura da janela
        Uint16 retornaAltura(){ return mAltura;}
        /// Destrutor padrão
        ~Video();
};



#endif
